$(document).ready(function() {

    // Cuando se hace click en el botón, para ayudar o cancelar
    $("input[name='boton_ayuda']").click(function(e) {
        var jqParent = $(this).parent().parent().parent();
        var jqButton = $(this);

        // Si el botón es ayudar
        if(jqButton.attr("value") == "ayudar") {
            jqParent.addClass('loading');

            // Se debe de preguntar si la llamada ya ha sido tomada
            $.ajax({
                url: '/index.php/ajax/set_helping',
                dataType: 'json',
                type: 'POST',
                data: {id: jqParent.attr('id')},
                success: function(data) {
                    jqParent.removeClass('loading');
                    // No está tomada por nadie
                    if(data.result == true) {
                        jqParent.addClass('ayudando_por_mi');

                        // Cambiamos el valor del botón a cancelar
                        jqButton.attr("value","cancelar");

                        // Se esconden todos los botones de ayuda
                        $("input[value='ayudar']").hide();

                        // Echulamiento
                        jqParent.find('.detalles').removeClass("hidden");
                        jqParent.find('.titulo').addClass("editing");
                        jqParent.find('.detalles').addClass("editing");
                    }
                    // Alguién ya la tomó
                    else {
                        jqParent.toggleClass('ayudando', true);
                    }
                }
            });
        }
        // Si el botón es cancelar
        else if(jqButton.attr("value") == "cancelar") {
            // Cambiamos el botón a ayudar
            jqButton.attr("value","ayudar");

            jqParent.removeClass('ayudando_por_mi');

            // Mostramos todos los botones ayudar nuevamente
            $("input[value='ayudar']").show();

            // Enchulamiento
            jqParent.find('.detalles').addClass("hidden");
            jqParent.find('.titulo').removeClass("editing");
            jqParent.find('.detalles').removeClass("editing");

            // avisar al servidor que se liberó la llamada
            $.ajax({
                url: '/index.php/ajax/unset_helping/',
                dataType: 'json',
                type: 'POST',
                data: {id: jqParent.attr('id')},
                complete: function() {
                    //alert('liberada');
                }
            });
        }
    });

    var isWaitingResponse = false;

    // Ajax que se ejectuta cada cierto período
    setInterval(
        function () {
            if(!isWaitingResponse) {
                isWaitingResponse = true;
                $.ajax({
                      url: '/index.php/ajax/get_stats',
                      dataType: 'json',
                      type: 'POST',
                      success: function(data) {
                        // Cambiar las estadísticas
                        $('#total_solved').html(data.stats[0].total_solved);
                        $('#total_helping').html(data.stats[0].total_helping);
                        $('#total_waiting').html(data.stats[0].total_waiting);
                        $('#total_calls').html(data.stats[0].total_calls);

                        // Marcar las llamadas que están siendo resueltas
                        for(var i=0; i < data.helping.length; i++) {
                            var jqLlamada = $('#' + data.helping[i].id);
                            if(jqLlamada.length != 0 && !jqLlamada.hasClass('ayudando_por_mi') && !jqLlamada.hasClass('loading'))
                                jqLlamada.toggleClass('ayudando', true);
                        }

                        isWaitingResponse = false;
                     }
                });
            }
        }
        ,5000
    );

    window.onbeforeunload = function() {
        $('.ayudando_por_mi').each(function () {
            $.ajax({
                url: '/index.php/ajax/unset_helping/',
                dataType: 'json',
                async: false,
                type: 'POST',
                data: {id: $(this).attr('id')},
                complete: function() {
                    location.reload();
                }
            });
        });
    };
});


function onConnected() {
    $("#fb_button_msg").html("Logout");
    $("#welcome_msg").show();
    //alert("hola!");

}
function onNotConnected() {}
